The present disclosure relates to communication between devices are based upon the IEEE 802.11 technology commonly known as Wi-Fi. IEEE Standard 802.11-2012 is used as the reference for the specifications used in this disclosure. The standard exchange of packets between two stations (STAs), such as between a STA A and STA B is for STA A to transmit a packet to STA B and then wait for the acknowledgment (ACK) packet to be received back from STA B before sending the next packet. In a standard infrastructure network, either STA A or STA B may be an access point (AP). Consider the case that STA A is an AP. After the AP has transmitted the packet to a STA, the AP will wait for a set timeout period that is dependent upon the channel frequency band and the physical data rate. If the ACK is not received within that timeout period, the AP will assume that the packet failed and will, in most cases, retry the transmission. In the case that successive transmissions of that packet do not receive an ACK within the specified timeout period, then the AP will retry the packet up to a retry limit and at that point discard the packet. If it is assumed that the packet was received error free at the STA, then as each packet is retried to the limit, the resultant throughput is a fraction of what it could be.
The aforementioned timeout period is specified in the 802.11 Standard. The aforementioned timeout period is termed “ACKTimeout interval” and is defined as having a value as follows:ACKTimeout=aSIFSTime+aSlotTime+aPHY-RX-START-Delay.
If the AP and the STA are co-operative then they can in fact, according to the Standard, adjust their ACKTimeouts to accommodate a known long range. This may be done by adding “aPropagationTime” to the “aSlotTime” in the formula above. In a fixed long range link, this may be done, i.e., the aSlotTime is extended, but for an unknown range this is impractical. In the case of the present disclosure, the AP does not know that the STA is far away and the STA is attempting to communicate at a distance. It is noted that the use of the term “long range communications” throughout this disclosure may be defined as a range such that the propagation time of the signals between the AP and the STA exceeds half the aACKTimeout value when the aSlotTime is not adjusted for air propagation time.
The individual terms aSIFSTime, aSlotTime and aPHY-RX-START-Delay are specified in the 802.11 Standard for each physical layer (PHY). For example, for a Clause 16 Direct Sequence Spread Spectrum (DSSS) device, 1 and 2 Mbps in the 2.4 GHz band, Table 16.2 in the 802.11 Standard specifies aSIFSTime of 10 μs, aSlotTime of 20 μs and aPHY-RX-START-Delay of 192 μs. For a Clause 17 High Rate DSSS (HR/DSSS) device, 5.5 and 11 Mbps in the 2.4 GHz band, Table 17.5 in the 802.11 Standard specifies aSIFSTime of 10 μs, aSlotTime of 20 μs and aPHY-RX-START-Delay of “192 μs for long preamble and 96 μs for short preamble.” Each transmission starts with a preamble and header which is detected by the receiving device in order to correctly identify that the transmission is indeed an 802.11 conformant signal and subsequently correctly demodulate the packet. It should be noted that the aPHY-RX-START-Delay durations, for Clause 16 and 17 devices, commonly known as 802.11b, are equal to the preamble and header duration. Also, it should be noted that, in general, the long preamble is used when the packet is being transmitted at a PHY rate of 1 Mbps, and the short preamble is used when the packet is being transmitted at 2, 5.5 or 11 Mbps.
When receiving a packet, the receiving Clause 16 or 17 device transmits the ACK after waiting a time period equal to aSIFSTime. If it is assumed that the distance between the AP and the STA, in the present example, is d feet, then the transmission from the AP will arrive at the STA after a delay of approximately d ns. The STA will wait aSIFSTime, e.g., 10 μs, and then transmit the ACK. The ACK transmission will also be delayed by d ns, and hence the AP will receive the ACK at a time (2d/1000+aSIFSTime) μs after the end of its packet transmission. Assuming that the packet transmitted by the AP is at 1 Mbps and hence uses the long preamble, the ACKTimeout interval will be equal to 10+20+192=222 μs which appears to allow for a value for d that equates to 212/2=106 μs, equal to a distance of about 20 miles. This however is not the case. The preamble and header duration is 192 μs and in theory this must be completed before the end of the ACKTimeout interval in order for the AP to know that a valid ACK packet is being received, and hence the start of the ACK must be received by the AP within only 20 μs after the end of its packet transmission. This would only allow a distance of less than 2 miles, which is not sufficient for long range communications.
The preamble and header, for a long preamble, includes a 128 bit preamble, and a 16 bit start frame delimiter (SFD) followed by 48 header bits, a total of 192 bits, all sent at 1 Mbps. In practice, if the preamble is received within the ACKTimeout interval, then the AP may be able to recognize a valid signal and wait until the packet completes in order to establish that it is an ACK. In this case, the maximum delay would increase from 20 μs to (20+192−128)=84 μs, equivalent to a distance d of about 8 miles. Hence, in order that the ACK is received in time to prevent a retry, the maximum range of a 1 Mbps transmission, using a long preamble between the AP and STA, will be between 2 to 8 miles dependent upon the device specific implementation of the ACKTimeout interval. It should be noted that in the 802.11 Standard, 1 Mbps and 2 Mbps devices may detect the presence of a signal by implementing either an energy detect above a threshold, or by detecting a valid DSSS signal. The energy detect threshold is set at −80 dBm according to the 802.11 Standard but in general most 802.11b compliant devices use the valid signal detect, known as Carrier Sense (CS). Hence, it is necessary to detect the preamble bits and check that the valid DSSS code sequence is present.
The above background description is based upon the Clause 16 and Clause 17 PHY layers of the 802.11 Standard. A similar situation is present for other PHY layers. If using the 2.4 GHz band, then it is also possible to use the orthogonal frequency division modulation (OFDM) of Clause 19 Extended Rate PHY (ERP), commonly referred to as 11g. Similarly, in the 5 GHz band, Clause 18 devices, commonly referred to as 11a, and Clause 20 devices, commonly referred to as 11n, use OFDM. In the cases when OFDM is in use, the lowest PHY rate, and hence the PHY rate most likely to be used for long distance communication, is at 6 Mbps. For 6 Mbps OFDM, the value for aSIFSTime, according to Table 19.8 of the 802.11 Standard, is 10 μs but a signal extension of 6 μs is specified which causes the effective value for aSIFSTime to be 16 μs which will be used for the purposes of the background discussion related to this disclosure. The aSlotTime, according to Table 19.8 of the 802.11 Standard is specified as either 20 μs or 9 μs, but in practice for OFDM the 9 μs slot time is used. The aPHY-RX-START-Delay is also specified in Table 19.8 of the 802.11 Standard and a value of 24 μs is given for OFDM. Hence, for a 6 Mbps OFDM packet, the ACKTimeout interval is 16+9+25=50 μs. The duration of the OFDM header is 20 μs. An OFDM device is required to detect the presence of a signal and set a trigger, using both energy detect, i.e., any energy detected above a set threshold, and carrier detect, i.e., the receipt of a valid header which will be at the receive sensitivity level. The returning ACK to a transmitted packet must therefore be detected within 9+25=34 μs. The signal detect is specified as being set within 4 μs of the start of the reception, according to 19.4.7 of the 802.11 Standard, hence the maximum delay due to range will be (34−4)/2=15 μs, or about 2.8 miles. Similar parameters apply to devices under Clause 18 of the 802.11 Standard, commonly known as 11a and devices under Clause 20 of the 802.11 Standard, commonly known as 11n.
FIG. 1 is a block diagram of a standard communications link 100 between an AP 101 and a STA 105 in a typical IEEE 802.11 infrastructure network. The AP 101 has an antenna 102. STA 105 has an antenna 106. The distance between the two antennas is d 110. The propagation time for a radio signal between the two antennas 102 and 103 will be d/C where C is the speed of light. If d is in feet, then the propagation time is about d ns. Assuming that a radio signal is transmitted by the AP 101, if the distance 110 between the two antennas 102 and 106 is 1 mile, the radio signal received at antenna 106 will be delayed by 5.28 μs, referred to the time of the transmission from antenna 102.
FIG. 2 is a timing diagram that depicts the typical transmission of a packet from an AP 200 to a STA 205 in time. At time T1 211, the AP 200 starts to transmit packet 202. Packet 202 has a duration of tp 230. At time T2 221 the STA 205 starts to receive the packet 203 which may or may not be identical to the transmitted packet 202 dependent upon the propagation conditions. For the purposes of this description it is assumed that packet 203 has the same content as packet 202. At time T3 212, AP 200 completes the transmission of packet 202 and at time T4 222, STA 205 will complete receiving the packet 203. The time differences (T2−T1) and (T4−T3) will be the same and will have a value δ 231 that corresponds to the distance between the AP 200 and the STA 205, as previously described in FIG. 1. At time T5 223, STA 205 will transmit an acknowledgement packet (ACK) 221 back to the AP 200. The time difference (T5−T4), tSIFS 632, will be equal to the aSIFSTime as defined in the 802.11 Standard which, as previously explained, is the time that a STA will wait after the completion of a received packet before sending an ACK packet in response. At time T6 213 the ACK packet 222, which is the same as the ACK packet 221 transmitted by the STA 205 at time T5 223, will start to be received by the AP 200. Note that the time difference δ 233, between T6 213 and T5 223, will again represent the propagation time between the AP 200 and the STA 205 and will be equal in value to δ 231. Hence, the time that elapses, at the AP 200, from the end of the transmission T3 212 of packet 202 to the start of the reception of the ACK packet 222 at time T6 213 is equal to (2δ+aSIFSTime), where δ is the propagation time related to the distance between the AP 200 and the STA 205 as previously described in FIG. 1. As previously described, if the distance, and hence the propagation time, exceeds a certain value, then the AP 200 will receive the ACK 222 too late and it will assume that the transmitted packet 202 failed. At this point the AP 200 will start proceedings to send a retry of packet 202.
FIGS. 3a and 3b show the format of typical 802.11 data packets. FIG. 3a is a diagram that shows the format 300 of an 802.11 transmitted packet using a long preamble at 2.4 GHz. The preamble 307 consists of a synchronization field 301 followed by the Start Frame Delineator (SFD) 302. The synchronization field 301 consists of 128 bits in the case of the long preamble. The preamble 307 is followed by the header 308 which includes the signal, service, and length fields 303 followed by a cyclic redundancy check (CRC) 304. Together the preamble 307 and header 308 comprise 192 bits and are sent at 1 Mbps. Hence the duration of the preamble and header is 192 μs. After the CRC 304 comes the media access control (MAC) header 305 and frame body 316. At the end of the packet if the frame check sum (FCS) 309 which is used to check if the packet has been received with no errors. Referring back to FIG. 2, the time T4 222, the end of the received packet 203, is the point at which the FCS error check has been carried out successfully.
FIG. 3b is a diagram that shows the typical format 310 of an 802.11 transmitted packet using a short preamble at 2.4 GHz. This is similar to FIG. 3a except that the synchronization field 311 of the preamble 317 is 56 bits compared to 128 bits for the synchronization field 301 used in the long preamble 307. The synchronization field 311 is followed by the Start Frame Delineator (SFD) 312. The preamble 317 is flowed by the header 318 which consists of the signal, service, and length fields 313 followed by a cyclic redundancy check (CRC) 314. Together the preamble 317 and header 318 comprise 72 bits and are sent at 1 Mbps. Hence the duration of the preamble and header is 72 μs. The CRC 304 is followed by the MAC header 315 and frame body 316. At the end of the packet is the frame check sum (FCS) 317. In the case of a short preamble, the header 318 is transmitted at 2 Mbps. Hence, the short preamble can only be used if the MAC header 315 and packet frame body 316 is being sent at 2, 5.5 or 11 Mbps. For a 1 Mbps transmission, the long preamble 307 FIG. 3a is used.
FIG. 4 is a block diagram that shows the typical format of an 802.11 OFDM transmitted packet 400 for clause 18, 19 and 20 devices of the 802.11 Standard commonly known as 11a, 11g and 11n respectively. The preamble and signal 407 are transmitted at the 6 Mbps OFDM rate. The preamble 401 is 16 μs in duration and includes 12 symbols, 10 short and 2 long. The preamble 401 is followed by the signal field 402 which is a single symbol. After the preamble and signal 407 comes the service and MAC frame 408 comprised of the service field 403, the MAC header 404 the frame body 405 and finally the FCS 406. The service and MAC frame 408 is transmitted at the chosen data rate for the packet. The preamble and signal 407 are sent at 6 Mbps.
The FCS field is used to verify that the packet has been received correctly. If in a received packet the FCS check is correct then the ACK should be sent. If the FCS check fails then an ACK is not sent. Therefore, the point at which a device knows that a packet has been received, and that it is correct, is at the end of the packet after checking the FCS field. Also, it should be noted that the ACK packet is not transmitted until a time of aSIFSTime has elapsed after the end of the received packet. This is to allow time for the transmitting device to switch from transmit mode to receive mode in order to receive the ACK. When the AP and the STA are close, then the aSIFSTime is the elapsed time between the end of the transmitted packet and the start of the received ACK packet. If the AP and the STA are at a distance from each other, then the time between the end of the transmitted packet and the start of reception of the received ACK packet will be greater. Hence, the ACKTimeout interval is used to allow the transmitting station to wait for the ACK but not wait too long in the case that the ACK is not being sent. This restriction on the ACKTimeout interval is a limitation on efficient communications over extended ranges.
FIG. 5 and FIG. 6 describe a known method for estimating the time delay and hence the distance between two stations. The method described does not in itself form part of this disclosure, but the use of the method of measuring the delay and then using the result of the measurement to improve the communication at extended range does form part of this disclosure.
FIG. 5 is a timing diagram that describes a basic active ranging method that may be used to determine the distance between a STA A 500 and another STA B 505. The time axis 510 refers to STA A 500 and the time axis 520 refers to STA B 505. At time T1 511, STA A 500 transmits a packet to STA B 505. This transmission 512 is received at STA B 505 at time T2 513. The propagation time of the transmission 512 is (T2−T1) 530. STA B 505 transmits a response 524 at time T3 523. The time 522 that has elapsed between the reception of the packet at time T2 513 and the transmission at time T3 523 is the turnaround time at STA B 505. Ideally the turnaround time 522 at STA B will be equal in duration to aSIFSTime (SIFS). This is the case when the first transmitted packet is a ready-to-send (RTS) control packet which will generate a clear-to-send (CTS) control response packet. Also the initial packet may be a data null packet and the response an ACK packet. A variety of packets may be used. However, the turnaround time for the response packet should be known. At time T4 514, STA A 500 receives the response 524 from STA B 505. The propagation time of the transmission 524 is (T4−T3) 534. It should be noted that the time differences 530 and 534 represent the propagation time, δ, of the transmissions and should be equal assuming the distance between the two stations has not changed. The total time that elapses between the transmission 512 and the reception 524 at STA A 500 is:(T2−T1)+(T3−T2)+(T4−T3)=(T4−T1)=δ+SIFS+δ  (5)Hence, δ=(T4−T1−SIFS)/2  (6)
Expression (6) is a simplified equation that is included so as to provide an understanding of the general idea of a ranging transmission method. Note that the duration of the transmitted packet and the response packet is not accounted for in equation (5). Note also that, in practice, it is common that the timestamp of a packet is set to coincide with the end of the packet at the point where the FCS check is completed.
FIG. 6 is a time diagram that describes in further detail a general ranging transmission method. Time axis 610 refers to STA A 600 and time axis 620 refers to STA B 605. At time Ta 611 STA A starts the transmission of packet 602 which is addressed to STA B 605. After a time delay of δ, at time Tb 621, STA B 605 starts to receive packet 603, which ideally is identical to packet 602. Packet 603 may differ in the value of particular bits dues to propagation conditions but in general, the packets are the same. At time Tc 612 STA A 600 completes the transmission of packet 602 and at time Td 622 STA B 605 completes the reception of packet 603. The time difference between Tc 612 and Td 622 is δ the propagation time for the packet to travel from STA A 600 to STA B 605. Note that the time differences (Tc−Ta) and (Td−Tb) are both the duration tp 630 of the transmitted packet 602.
STA B 605 transmits the response packet 621 at time Te 623. Assuming that the response is an ACK or an RTS packet in reply to the received packet 603, time Te ideally will be at a time tSIFS 632 after time Td 622, where tSIFS 632 is the aSIFSTime as defined in the IEEE 802.11 standard [1]. At time Tf 613, STA A 600 starts to receive the response 622 which ideally is identical to response 621 sent by STA B 605. At time Tg 624 STA B 605 completes the transmission of the response 621 and at time Th 622, STA A 600 completes receiving the response 622. Note that the time differences (Tb−Ta), (Td−Tc), (Tf−Te) and (Th−Tg) are all equal and have the value δ which is the propagation time for the packet and response to travel between the two STAs. At STA A 600, the time of a packet at the point when the frame check has completed may be recorded. Hence, at STA A 600, the monitoring station, the time for the transmission of packet 602 that is recorded is Tc 612, and the time that is recorded for the reception of the response 622 is Th 614. In order to calculate the value of δ it is necessary to know the duration tr 634 of the response 622. Calculating the duration tr 634 is possible as the monitoring station, STA A 600 can monitor the details of the response packet such as data rate and length. In practice therefore, STA A 600 can calculate the value of δ from expression (7):δ=(Th−Td−tr−tSIFS)/2  (7)
FIG. 7 is a diagram that shows the times associated with the sending of an 802.11 packet 700 using conventional timing and is drawn in more detail than that described in FIG. 2 so as to include the details described in FIG. 3 and FIG. 4. The packet 700 is transmitted by the AP 750 at time T1 740. At time T2 741 the STA 760 starts to receive packet 710 which for is assumed to be identical to packet 700. Also, for this example, the packet is a 1000 byte packet being transmitted at 1 Mbps on a 2.4 GHz channel. Time difference (T2−T1) is the propagation delay. The transmitted packet 700 starts with the preamble field 701, followed by the header field 702, the MAC header 702, the frame body 704 and finally the FCS field 705. At time T3 742 the AP 750 completes the transmission of the packet 700. At the STA 760, the reception of packet 710 is after the completion of the FCS at time T4. Time difference (T4−T3) is the propagation delay, equal to (T2−T1). At time T5, the ACK packet 720 is transmitted to the AP 750 by the STA 760. The time difference (T5−T4) may be equal to aSIFSTime or may be less, as previously described. At time T6 745 the AP 750 starts to receive the ACK packet 730 which for purposes herein is identical to ACK packet 720. Time difference (T6−T5) is the propagation delay, equal to (T2−T1) and (T4−T3). At time T7 the receipt of the preamble 731 of the ACK packet 730, is completed.
The time difference (T7−T3) represents the time that has elapsed at the AP 750 after having completed the transmission of packet 700 and receiving, or identifying the receipt of the expected ACK packet. To illustrate the timing, the following example is used. For example, assuming a distance between the AP 750 and the STA 760 of 19 miles, the corresponding propagation delay is about 100 μs. A 1000 byte packet at 1 Mbps is 9130 μs duration in total. The duration of a 1 Mbps ACK packet is 304 μs of which the preamble is 128 μs duration. Continuing the example, assuming that aSIFSTime was used by the STA, then the delay (T7−T3) has a value of 100+10+100+128=338 μs. This exceeds the ACKTimeout interval of 222 μs and therefore the AP 750 will have assumed that the packet 700 was not received and will proceed to retry the packet. There is every chance that the AP 750 will already be re-transmitting the packet 700 when the ACK is present at the AP antenna, but even if the ACK is received at this late time, the AP 700 will not know the source and will disregard it. It should be noted that ACK packets do not include the address of the originating station. ACK packets only include the destination address.
In the case that a STA is attempting to establish long range communication with a standard AP such that it can receive from and transmit to that AP, the ACKTimeout interval used by the AP is assumed to be to the 802.11 Standard. However, when attempting long range Wi-Fi communications, associated propagation losses result in retries and degrades the communication throughput. Also, a timeout of the device waiting for the ACK may occur. One attempted solution is to increase the ACKTimeout interval, but this requires that the device is a special implementation.